package cn.itcast.nems.base.dto;

import cn.itcast.nems.common.QueryParam;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import java.time.LocalDate;
import java.util.List;


@Data
@NoArgsConstructor
@ToString
public class ClazzQueryDTO implements QueryParam {
    /** 班级ID*/
    private Integer classId ;
    /** 班级名称*/
    private String className ;
    /** 校区ID*/
    private String schoolId;
    private String  modelId ;
    /** 授课模式*/
    private String teachingModel;
    /** 学科ID*/
    private String subjectId;
    /** 班级类型ID*/
    private String classTypeId;
    /**
     * 是否可升级
     */
    private Boolean upgradeable;
    /**
     * 班级ID集合
     */
    private List<Integer> classIds;
    /**
     * 排除的学科ID
     */
    private List<String> excludeSubjectIds;
    /**
     * 是否包含待定班
     */
    private Boolean includeWait ;
    /**
     * 是否包含待删班
     */
    private Boolean includeWaitDeleted = Boolean.FALSE;
    /**
     * 开班日期下限
     */
    private LocalDate minStartDate;
    /**
     * 开班日期上限
     */
    private LocalDate maxStartDate;
    /**
     * 是否待定班级, true: 是
     */
    private Boolean delayFlag;
    /**
     * 是否结课 ，true：是
     */
    private Boolean graduationFlag ;
    /**
     * 是否休学班级,true:是
     */
    private Boolean suspensionFlag;
    /**
     * 是否查询预计结课时间为本月内的班级
     */
    private Boolean currentMonthGraduationFlag ;
    /**
     * 是否开班
     */
    private Boolean startFlag ;
    /**
     * 是否锁定状态
     */
    private Boolean lockFlag ;

    private Boolean transfer;

    /**
     * 是否报名页面 ,  包含一些特殊的查询待定班逻辑
     */
    private Boolean enrolFlag  ;

    /**
     * 是否为新NEMS查询逻辑 ， 如果为 true  , 查询待定班逻辑  and  start_date ='5000-01-01'
     */
    private Boolean newFlag ;
    /**
     * 是否排除用户组
     */
    private Boolean excludeFlag  ;

}
